import javax.swing.JOptionPane;
import java.util.ArrayList;

public class ExecutarAgenda {

    public static void main(String[] args) {
        Agenda agenda = new Agenda();
        int opcao;
        String nome, sexo, tipo;
        Integer idade;
        Contato contato;
        ArrayList<Contato> contatos = new ArrayList<Contato>();
        Integer min;
        Integer max;

        Contato temp = new Contato("Bruno" , "M", 26);
        Contato temp2 = new Contato("Daniel" , "M", 9);
        Contato temp3 = new Contato("Ricardo" , "M", 28);
        Contato temp4 = new Contato("Paulo" , "M", 24);
        Contato temp5 = new Contato("Anderson" , "M", 22);
        Contato temp6 = new Contato("Fernando" , "M", 21);

        agenda.adicionarContato(temp, "1");
        agenda.adicionarContato(temp2, "2");
        agenda.adicionarContato(temp3, "1");
        agenda.adicionarContato(temp4, "2");
        agenda.adicionarContato(temp5, "1");
        agenda.adicionarContato(temp6, "2");



        while(true){
            opcao = Integer.parseInt(JOptionPane.showInputDialog("QUAL OPCAO DESEJADA? \n1-ADICIONAR\n2-REMOVER\n3-LISTAR\n4-MAIS VELHO\n5-MAIS NOVO\n6-REDUNDANTE\n7-FAIXA ETARIA"));
            switch(opcao){
                case 1:
                    //adicionar
                    nome = JOptionPane.showInputDialog("NOME");
                    sexo = JOptionPane.showInputDialog("SEXO");
                    try{
                        idade = Integer.parseInt(JOptionPane.showInputDialog("IDADE"));
                    }
                    catch(NumberFormatException e){
                        JOptionPane.showMessageDialog(null, "IDADE INVALIDA");
                        continue;
                    }
                    tipo = JOptionPane.showInputDialog("TIPO DE CONTATO? \n1-TRABALHO\n2-AMIGO");
                    contato = new Contato(nome,sexo,idade);
                    agenda.adicionarContato(contato, tipo);
                    break;
                case 2:
                    //remover
                    agenda.removerContato( JOptionPane.showInputDialog("NOME") );
                    break;
                case 3:
                    //listar
                    agenda.listaContatos( JOptionPane.showInputDialog("QUAL AGENDA? \n1-TRABALHO\n2-AMIGO"));
                    break;
                case 4:
                    //mais velho
                    contato = agenda.maisVelho( JOptionPane.showInputDialog("QUAL AGENDA? \n1-TRABALHO\n2-AMIGO"));
                    System.out.println("O usuario mais velho é " + contato.getNome());
                    break;
                case 5:
                    //mais novo
                    contato = agenda.maisNovo( JOptionPane.showInputDialog("QUAL AGENDA? \n1-TRABALHO\n2-AMIGO"));
                    System.out.println("O usuario mais novo e " + contato.getNome());
                    break;
                case 6:
                    //redundante
                    contatos = agenda.redundante();
                    for (Contato lista : contatos) {
                        System.out.println("O contato repetido e " + lista.getNome());    
                    }
                    break;
                case 7:
                    //faixa etaria
                    min = Integer.parseInt(JOptionPane.showInputDialog("QUAL A MENOR IDADE? "));
                    max = Integer.parseInt(JOptionPane.showInputDialog("QUAL A MAIOR IDADE? "));
                        
                        for (Contato lista : agenda.faixaEtaria(min, max)) {
                        System.out.println("A faixa etaria e " + lista.getNome());    
                    }
                    break;
                default:
                    System.exit(0);
                    break;
            }
        }
    }

}
